The present invention relates to transaction processing, and more specifically, to predicting transaction failure in a transaction processing environment.
Transaction processing is a form of computer processing where work is divided into transactions. Typically, transactions are indivisible operations, where the entire transaction must either succeed or fail, and distributed transaction processing generally involves executing a transaction across multiple devices. As the number of devices and resources required to process a transaction increases, the possible failure points likewise increases. Common failure points include network delays while the transaction is traversing the system, dispatcher delays before the transaction can be sent to a particular device for processing, scheduler delays where a transaction processor is overloaded and the transaction sits in an input queue for too long, execution delays where a transaction processor is simply executing slowly, and unavailability of a dependent resource.
Generally, transactions can be associated with an amount of time that the transaction must be processed in and, if the transaction is not processed within the time limit, the transaction is typically aborted. For example, if the transaction suffers delays, e.g., waiting for a resource or TPM to become available, the elapsed time since the transaction was initiated may exceed this timeout. When that happens, the transaction fails, and any changes made are reverted to maintain consistency in the system. As a result, a substantial amount of computer resources and processing time can be wasted on these failed transactions before it is determined that the transaction has timed out or failed.